The Internet, private networks, and other data sources are filled with vast amounts of information related to a variety of topics. Web sources may include a variety of unstructured, semi-structured, and structured information. Some text, video, and other data can be qualified as unstructured data, or data that is not organized in a manner that is actionable. This does not mean that the data is not organized according to a format (e.g., with particular headings, textual emphasis, Hypertext Markup Language (HTML) and so forth), but rather that the data is not in a form that can be readily consumed for automated processing. Most data contains at least some structure, and may include video and other multimedia sources in addition to text. Some sites contain semi-structured data, such as Wikipedia, which provides a common set of headings and a well-known format. Other sources, like WikiHow, provide information structured in numbered steps. Search engines and other software tools have been designed to crawl various available data sources and perform various techniques (e.g., document analysis, metadata extraction, keyword analysis, and so on) to determine what information a particular document or other data source contains.
One common reason that a user accesses one or more data sources is to complete a task. A task can include any action or sequence of actions that involves one or more steps; each step may have sub-steps and may involve synthesizing various sources to gather enough information or make a decision. A user's task could be any number of activities, including rolling over a 401(k) account, filling out a tax return, planning a party, buying a car, checking whether a package has been delivered, or any other activity. Today, users have to sift through thousands of agents to find one or more agents that allow them to complete a task. Agents can be device-specific programs, websites, or other data sources and applications. In a typical scenario a user might start by searching the Internet using a search engine to find help with what the user is trying to do (e.g., by submitting a query such as “rolling over a 401k”). The user then often sifts through multiple documents to find the information the user is looking for. Along the way, the user might install one or more applications or use one or more web-based tools that help the user complete all or part of the task.
Today there is no automated way for a user to consistently find information to step through and complete tasks. Each time the user wants to do something, the user starts with a blank slate and simply tries to find information to fill in the user's knowledge and to make progress in completing the task. Understanding procedural steps from a document or a set of documents is a complex issue. This is more so the case when the information is coming from multiple sources of unstructured or semi-structured data. Data might be found in any format, at any location, and the user is left to manually figure out the information, determine whether the information is helpful to the user's current intent, and carry out any steps provided by the information. Even if the user discovers an agent that will walk the user through a particular part of the process, the users particular task may involve multiple agents none of which is designed to communicate or to transfer data easily from one step of the process to another.